package org.minbox.framework.mantool.core;

import org.minbox.framework.mantool.core.support.instance.InstanceFactory;

/**
 * 类 Instance 实例 Utils 函数
 *
 * @author 就眠仪式
 * */
public class InstanceUtil {

    /**
     * 获取单例对象
     * 1. 需要保证对象的线程安全性。
     *
     * @param tClass
     * @return T
     * */
    public static <T> T singleton(final Class<T> tClass){
        return InstanceFactory.getInstance().singleton(tClass);
    }

    /**
     * 获取多例对象
     *
     * 1.需要保证对象的线程安全性。
     *
     * @param tClass
     * @return T
     * */
    public static <T> T multiple(final Class<T> tClass){
        return InstanceFactory.getInstance().multiple(tClass);
    }

    /**
     * 获取线程单例
     *
     * @param tClass
     * @return T
     * */
    public static <T> T threadLocal(final Class<T> tClass){
        return InstanceFactory.getInstance().threadLocal(tClass);
    }

}
